#ifndef FAKTURA_BASE_H
#define FAKTURA_BASE_H
#include <QString>
#include <odb/core.hxx>
#include <QSharedPointer>
#include <odb/qt/lazy-ptr.hxx>
#include <QList>
#include "Kontrahent_BASE.h"
#include "Uzytkownik_BASE.h"
#include "Towar_BASE.h"
#include "Pozycja_Faktura_Sprzedaz_BASE.h"
#include <QDate>

class Kontrahent_BASE;
class Uzytkownik_BASE;
class Towar_BASE;
class Pozycja_Faktura_Sprzedaz_BASE;
#pragma db object
class Faktura_BASE{

protected:

    Faktura_BASE(){}
    friend class odb::access;

#pragma db id auto
    unsigned long id_;

#pragma db not_null
    QSharedPointer< Kontrahent_BASE > kontrahent_;
#pragma db not_null
    QSharedPointer< Uzytkownik_BASE > uzytkownik_;

    QDate   data_Sprzedazy_;
    QDate   data_Wystawienia_;
    QString miejscowosc_;
    QString nr_Faktury_;
    QString typ_;
    QString forma_Platnosci_;
    double  suma_;
    double  do_Zaplaty_;

#pragma db value_not_null inverse(faktura_)
    QList < QLazySharedPointer < Pozycja_Faktura_Sprzedaz_BASE > > pozycje_Sprzedazy;
#pragma db value_not_null inverse(faktura_)
    QList < QLazySharedPointer < Towar_BASE > > pozycje_Zakupu;
};


#endif // FAKTURA_BASE_H
